package site.jlopen.secret.model.data;

import org.hibernate.validator.constraints.Range;

import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import lombok.EqualsAndHashCode;
import site.jlopen.secret.common.SecretBaseForm;

/**
* @ClassName: SecretDatasourceCreateReq
* @Description: 绑定节点数据源接口请求内容
* @author ChenJiaLu
* @date 2024年10月17日 上午10:50:30
 */
@Data
@EqualsAndHashCode(callSuper=false)
public class SecretDatasourceCreateReq extends SecretBaseForm {
	/**
	 * 绑定节点编号，如果节点非空则会创建该节点的数据源绑定
	 */
    //@NotBlank(message = "节点编号不能为空")
	//private String nodeCode;
	/**
	 * 默认只能使用数据源类型oss
	 */
	private String type = "oss";
	/**
	 * 自定义数据源名称
	 */
    @NotBlank(message = "数据源名称不能为空")
	private String name;
	/**
	 * 自定义数据源编号（唯一）
	 */
    @NotBlank(message = "编号不能为空")
	private String code;
	/**
	 * OSS的endpoint
	 */
    @NotBlank(message = "endpoint不能为空")
	private String endpoint;
	/**
	 * OSS的块（桶）
	 */
    @NotBlank(message = "bucket不能为空")
	private String bucket;
	/**
	 * 前缀（每个节点需要配置独立的前缀，但可用同一个数据源）
	 */
    @NotBlank(message = "前缀不能为空")
	private String prefix;
	/**
	 * OSS的账号
	 */
    @NotBlank(message = "账号不能为空")
	private String accessKey;
	/**
	 * OSS的秘钥
	 */
    @NotBlank(message = "秘钥不能为空")
	private String accessSecret;
	/**
	 * 主机域名（可以不配置，如果有配置的nginx等代理访问则需要配置）
	 */
	private String virtualhost;
	

	/**
	 * @param name         <p>自定义数据源名称</p>
	 * @param code         <p>自定义数据源编号（唯一）</p>
	 * @param endpoint     <p>OSS的endpoint</p>
	 * @param bucket       <p>OSS的块（桶）</p>
	 * @param prefix       <p>前缀（可以不配置）</p>
	 * @param accessKey    <p>OSS的账号</p>
	 * @param accessSecret <p>OSS的秘钥</p>
	 * @param virtualhost  <p>主机域名（可以不配置，如果有配置的nginx等代理访问则需要配置）</p>
	 */
	public SecretDatasourceCreateReq(String name, String code, String endpoint, String bucket,
			String prefix, String accessKey, String accessSecret, String virtualhost) {
		super();
		this.name = name;
		this.code = code;
		this.endpoint = endpoint;
		this.bucket = bucket;
		this.prefix = prefix;
		this.accessKey = accessKey;
		this.accessSecret = accessSecret;
		this.virtualhost = virtualhost;
	}

	public SecretDatasourceCreateReq() {
		super();
	}
	
}
